package com.yunzheng.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 郭思良
 * @create 2020-07-23 15:38
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sys_perm")
public class SysPerm implements Serializable {
    /**
     * 权限id
     */
    @TableId(value = "perm_id", type = IdType.INPUT)
    private String permId;

    /**
     * 权限父id
     */
    @TableField(value = "perm_pid")
    private String permPid;

    /**
     * 权限名
     */
    @TableField(value = "perm_name")
    private String permName;

    /**
     * 路径
     */
    @TableField(value = "url")
    private String url;

    /**
     * 权限描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * 菜单标题
     */
    @TableField(value = "name")
    private String name;

    /**
     * 一级菜单跳转地址
     */
    @TableField(value = "redirect")
    private String redirect;

    /**
     * 菜单类型(0:一级菜单; 1:子菜单:2:按钮权限)
     */
    @TableField(value = "menu_type")
    private String menuType;

    /**
     * 菜单权限编码
     */
    @TableField(value = "perms")
    private String perms;

    /**
     * 权限策略：1显示2禁用
     */
    @TableField(value = "perms_type")
    private String permsType;

    /**
     * 菜单排序
     */
    @TableField(value = "sort_no")
    private String sortNo;

    /**
     * 聚合子路由: 1是0否
     */
    @TableField(value = "always_show")
    private String alwaysShow;

    /**
     * 菜单图标
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 是否路由菜单: 0:不是  1:是（默认值1）
     */
    @TableField(value = "is_route")
    private String isRoute;

    /**
     * 是否叶子节点: 1:是   0:不是
     */
    @TableField(value = "is_leaf")
    private String isLeaf;

    /**
     * 是否缓存该页面: 1:是   0:不是
     */
    @TableField(value = "keep_alive")
    private String keepAlive;

    /**
     * 是否隐藏路由: 0否  1是
     */
    @TableField(value = "hidden")
    private String hidden;

    /**
     * 创建人
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 权限创建时间
     */
    @TableField(value = "perm_create_time")
    private LocalDateTime permCreateTime;

    /**
     * 更新人
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 权限更新时间
     */
    @TableField(value = "perm_update_time")
    private LocalDateTime permUpdateTime;

    /**
     * 删除状态 0正常 1已删除
     */
    @TableField(value = "del_flag")
    private String delFlag;

    /**
     * 是否添加数据权限1是0否
     */
    @TableField(value = "rule_flag")
    private String ruleFlag;

    /**
     * 按钮权限状态(0无效1有效)
     */
    @TableField(value = "status")
    private String status;

    /**
     * 外链菜单打开方式 0/内部打开 1/外部打开
     */
    @TableField(value = "internal_or_external")
    private String internalOrExternal;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    /**
     * 组件
     */
    @TableField(value = "component")
    private String component;

    /**
     * 组件名字
     */
    @TableField(value = "component_name")
    private String componentName;

    private static final long serialVersionUID = 1L;

    public static final String COL_PERM_ID = "perm_id";

    public static final String COL_PERM_PID = "perm_pid";

    public static final String COL_PERM_NAME = "perm_name";

    public static final String COL_URL = "url";

    public static final String COL_DESCRIPTION = "description";

    public static final String COL_NAME = "name";

    public static final String COL_REDIRECT = "redirect";

    public static final String COL_MENU_TYPE = "menu_type";

    public static final String COL_PERMS = "perms";

    public static final String COL_PERMS_TYPE = "perms_type";

    public static final String COL_SORT_NO = "sort_no";

    public static final String COL_ALWAYS_SHOW = "always_show";

    public static final String COL_ICON = "icon";

    public static final String COL_IS_ROUTE = "is_route";

    public static final String COL_IS_LEAF = "is_leaf";

    public static final String COL_KEEP_ALIVE = "keep_alive";

    public static final String COL_HIDDEN = "hidden";

    public static final String COL_CREATE_BY = "create_by";

    public static final String COL_PERM_CREATE_TIME = "perm_create_time";

    public static final String COL_UPDATE_BY = "update_by";

    public static final String COL_PERM_UPDATE_TIME = "perm_update_time";

    public static final String COL_DEL_FLAG = "del_flag";

    public static final String COL_RULE_FLAG = "rule_flag";

    public static final String COL_STATUS = "status";

    public static final String COL_INTERNAL_OR_EXTERNAL = "internal_or_external";

    public static final String COL_CREATE_TIME = "create_time";

    public static final String COL_UPDATE_TIME = "update_time";

    public static final String COL_COMPONENT = "component";

    public static final String COL_COMPONENT_NAME = "component_name";
}
